package com.engine.salary.entity.salaryarchive.param;

import com.engine.salary.common.BaseQueryParam;
import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 * 薪资档案
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案查询参数
public class SalaryArchiveQueryParam extends BaseQueryParam {

    private Collection<Long> ids;

    //姓名
    private String username;
    private Long employeeId;

    //个税扣缴义务人id
    private Long taxAgentId;

    private List<Long> taxAgentIds;
    private String taxAgentName;

    //分部id
    private List<Long> subcompanyIds;

    //部门id
    private List<Long> departmentIds;

    //岗位id
    private List<Long> positionIds;

    //状态
    private String userstatus;
    //状态(多选)
    private List<String> statuses;

    //入职日期
    private List<String> hiredate;

    //导入类型
    private String importType;

    private Collection<Long> employeeIds;

    //导出模板时，是否包含数据
    private Boolean hasData;

    /**
     * 档案状态
     * @see SalaryArchiveStatusEnum
     */
    private String archiveStatus;

    /**
     * 人事状态
     */
    private List<String> personnelStatuss;

    /**
     * 状态
     */
    @JsonIgnore
    private List<String> runStatusList;

    //列表类型：PENDING:待定薪;FIXED:发薪;SUSPEND:待停薪;STOP:停薪"
    private SalaryArchiveListTypeEnum listType;

    private String workcode;
    /**
     * 是否是外部系统档案
     */
    private boolean extSalaryArchiveList;


    private String payStartDateStartDateStr;
    private String payStartDateEndDateStr;

    // 起始发薪日期起
    private Date payStartDateStartDate;

    // 起始发薪日期止
    private Date payStartDateEndDate;

    // 最后发薪日期起
    private String payEndDateStartDateStr;
    // 最后发薪日期止
    private String payEndDateEndDateStr;

    // 最后发薪日期起
    private Date payEndDateStartDate;

    // 最后发薪日期止
    private Date payEndDateEndDate;

    // 调薪起始日期
    private Date adjustSalaryStartDate;

    // 调薪结束日期
    private Date adjustSalaryEndDate;

}
